//package cn.com.dhcc.platform.encryptanddecrypt.util;
//
//import java.io.File;
//
//import org.pbccrc.collectclient.preprocess.FileProcComponent;
//import org.pbccrc.collectclient.preprocess.GzipProcResult;
//import org.pbccrc.collectclient.preprocess.Sm4ProcResult;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
///**
// * 报文预处理工具类
// * 
// * @author dingLei
// *
// */
//public class PreprocessUtil {
//
//	private static Logger log = LoggerFactory.getLogger(PreprocessUtil.class);
//	private static final String ZIP_FILENAME_POSTFIX = ".zip";
//
//	public static File EncryptedCompression(File file, String path) {
//
//		File returnFile = null;
//		try {
//
//			File EncryptedFile = new File(path + File.separator + "preprocess");
//			// 如果文件夹不存在则创建
//			if (!EncryptedFile.exists() && !EncryptedFile.isDirectory()) {
//				EncryptedFile.mkdir();
//			}
//			// VerifyResult result = FileProcComponent.verifyFile(new
//			// File("E:\\home\\datareport\\99999999999999\\2018\\01\\05\\20180105004\\U10155840H00022018010551000030.txt"),
//			// BizType.COLLECT,
//			// "E:\\home\\datareport\\99999999999999\\2018\\01\\05\\20180105004\\ceshi");
//			// System.out.println("result="+result.getFbFileSavePath());
//			GzipProcResult EncryptedResult = FileProcComponent.gzip(file, FileProcComponent.COMPRESS,
//					path + File.separator + "preprocess");
//			// 得到进行加压处理的文件名称
//			String filename = EncryptedResult.getFileName();
//			// 得到加压处理状态
//			String EncryptedStatus = EncryptedResult.getStatus();
//			// 得到加压处理错误原因
//			String EncryptedErrorMsg = EncryptedResult.getErrorMsg();
//			// 更新报文详情表为文件写入完成
//			log.info("加密处理状态{}，加密错误原因{}", EncryptedStatus, EncryptedErrorMsg);
//			File CompressionFile = new File(
//					path + File.separator + "preprocess" + File.separator + filename + ZIP_FILENAME_POSTFIX);
//
//			// 调用处理组件实例的加密解密方法进行加密处理
//			Sm4ProcResult CompressionResult1 = FileProcComponent.sm4(CompressionFile, FileProcComponent.ENCRYPT,
//					path + File.separator + "preprocess");
//			// 得到加密处理状态
//			String CompressionStatus = CompressionResult1.getStatus();
//			// 得到加密处理错误原因
//			String CompressionErrorMsg = CompressionResult1.getErrorMsg();
//			String filePath = CompressionResult1.getFilePath();
//			returnFile = new File(filePath);
//			if (CompressionFile.exists()) {
//				CompressionFile.delete();
//			}
//			log.info("加压处理状态{}，加压错误原因{}", CompressionStatus, CompressionErrorMsg);
//		} catch (Exception e) {
//			log.error("加密加压失败");
//		}
//		
//		return returnFile;
//
//	}
//
//	/**
//	 * 解密解压
//	 */
//	public static File decryptionDecompression(File file,String path){
//		File returnFile = null;
//		try{
//			
//			 File decryptedFile =new File(path+File.separator+"preprocess");    
//			//如果文件夹不存在则创建    
//			if  (!decryptedFile .exists()  && !decryptedFile .isDirectory())      
//			{   
//				decryptedFile .mkdir();    
//			}
//			Sm4ProcResult sm4ProcResult = FileProcComponent.sm4(file, FileProcComponent.DECRYPT, path+File.separator+"preprocess");
//		
//			
//			//得到进行解密处理的文件名称
////			String fileName = sm4ProcResult.getFileName();
//			String fileName = sm4ProcResult.getFilePath().substring(sm4ProcResult.getFilePath().lastIndexOf(File.separator)+1);
//		//得到解密处理状态
//			String status = sm4ProcResult.getStatus();
//		//得到解密处理错误原因
//			String errorMsg = sm4ProcResult.getErrorMsg();
//		log.info("解密处理状态{}，解密错误原因{}",status,errorMsg);
//		File CompressionFile = new File(path+File.separator+"preprocess"+File.separator+fileName);
//		
//		// 调用处理组件实例的加压解压方法进行解压处理
//		GzipProcResult decryptedResult = FileProcComponent.gzip(CompressionFile, FileProcComponent.DECOMPRESS, path+File.separator+"preprocess");
//		
//		//得到解压处理状态
//		String decryptedResultStatus = decryptedResult.getStatus();
//		
//		//得到解压处理错误原因
//		String decryptedResultErrorMsg = decryptedResult.getErrorMsg();
//		String filePath = decryptedResult.getFilePath();
//		returnFile = new File(filePath);
//		if  (CompressionFile .exists())      
//		{   
//			CompressionFile .delete();    
//		}
//		log.info("解压处理状态{}，解压错误原因{}",decryptedResultStatus,decryptedResultErrorMsg);
//		}catch(Exception e){
//			log.error("解密解压失败错误为:{}",e);
//		}
//		return returnFile;
//		
//	   }
//}